package art.client;

import java.util.List;

import art.client.views.ArtUploadView;
import art.client.views.ArtsListView;
import art.client.views.LoginView;
import art.client.views.MenuView;
import art.client.views.UserArtsView;
import art.client.views.UserInfoView;
import art.client.views.UsersListView;
import art.shared.entities.GenreShared;
import art.shared.entities.LoginInfo;

import com.google.gwt.place.shared.PlaceController;
import com.google.web.bindery.event.shared.EventBus;

public interface ClientFactory {

	public EventBus getEventBus();

	public PlaceController getPlaceController();

	public LoginView getLoginView(LoginInfo loginInfo);

	public ArtsListView getArtsListView(LoginInfo loginInfo, List<GenreShared> genres);

	public MenuView getMenuView(LoginInfo info);

	public ArtUploadView getArtUploadView(LoginInfo loginInfo, List<GenreShared> genres);

	public UserArtsView getUserArtsView(LoginInfo loginInfo, List<GenreShared> genres);

	public UserInfoView getUserInfoView(LoginInfo loginInfo);

	public UsersListView getUsersListView(LoginInfo loginInfo);

}
